//package tech.tongyu.bob.demo.jpa.controller;
//
//import org.springframework.http.ResponseEntity;
//import org.springframework.web.bind.annotation.*;
//import tech.tongyu.bob.demo.jpa.entity.User;
//import tech.tongyu.bob.demo.jpa.service.impl.UserService;
//
//import javax.annotation.Resource;
//import java.util.List;
//import java.util.Optional;
//
//@RestController
//@RequestMapping("/jpa")
//public class UserController {
//
//    @Resource
//    private UserService userService;
//
//    //todo 探究rquestparam pathvariable的区别
//    @GetMapping("/find/{name}")
//    public ResponseEntity<User> getUserByName(@PathVariable String name) {
//        return Optional.ofNullable(userService.getUserByName(name)).map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
//    }
//
//    @GetMapping
//    public List<User> getAllUsers() {
//        return userService.getAllUsers();
//    }
//
//    @GetMapping("/{id}")
//    public ResponseEntity<User> getUserById(@PathVariable Long id) {
//        Optional<User> user = userService.getUserById(id);
//        return user.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
//    }
//
//    @PostMapping
//    public User createUser(@RequestBody User user) {
//        return userService.saveUser(user);
//    }
//
//    @PutMapping("/{id}")
//    public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
//        if (!userService.getUserById(id).isPresent()) {
//            return ResponseEntity.notFound().build();
//        }
//        user.setId(id);
//        return ResponseEntity.ok(userService.saveUser(user));
//    }
//
//    @DeleteMapping("/{id}")
//    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
//        if (!userService.getUserById(id).isPresent()) {
//            return ResponseEntity.notFound().build();
//        }
//        userService.deleteUser(id);
//        return ResponseEntity.noContent().build();
//    }
//
//    @PostMapping("/register")
//    public ResponseEntity<User> register(@RequestBody User user) {
//        return ResponseEntity.ok(userService.add(user));
//    }
//}
